package com.example.service;

import java.util.List;

/**
 * 用户通知阅读记录服务接口
 */
public interface UserNoticeReadService {
    
    /**
     * 标记通知为已读
     * @param userId 用户ID
     * @param noticeId 通知ID
     * @return 是否成功
     */
    boolean markAsRead(Long userId, Long noticeId);
    
    /**
     * 批量标记通知为已读
     * @param userId 用户ID
     * @param noticeIds 通知ID列表
     * @return 是否成功
     */
    boolean batchMarkAsRead(Long userId, List<Long> noticeIds);
    
    /**
     * 检查通知是否已读
     * @param userId 用户ID
     * @param noticeId 通知ID
     * @return 是否已读
     */
    boolean isRead(Long userId, Long noticeId);
    
    /**
     * 获取用户已读的通知ID列表
     * @param userId 用户ID
     * @return 已读通知ID列表
     */
    List<Long> getReadNoticeIds(Long userId);
    
    /**
     * 获取用户未读通知数量
     * @param userId 用户ID
     * @return 未读通知数量
     */
    long getUnreadCount(Long userId);
    
    /**
     * 标记所有通知为已读
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean markAllAsRead(Long userId);
}
